Variable increment digital function generator

ABSTRACT

A digital sine function generator having a read-only-memory for storing increments of a sine function thereon, where the storage size of the read-only-memory is limited such that the total number of memory bits as well as the number of bits at each address is less than that required to register all of the sine function increments. Accordingly the function is coded into the memory ambiguously where in the steep or high slope region of the sine function, identical code is used to indicate large increments corresponding to small increments in the relatively level region of the function. An interval detector determines the region of the function which is being read out of the memory and corrects or weights the code at the corresponding locations thus correcting for the ambiguity.

I Zorn [s41 VARI LE INCREMENT DIGITAL FUNCTION GENERATOR [76] Inventor: H. Zorn, 1938 Moreland Road, Abington', Pa, 19001 [451 Apr. 10, 1973 [57] ABSTRACT Filed: Aug. 27, 971 I A digital sine function generator having a read-only- PP 175,623 memory for storing increments of a sine function 1 v thereon, where the storage size of the read-only- U.s.c1. us/150.53, 235/197, 340/347 AD memory is limited-Such that the number of, 5 7 B8, G06j 1/00 memory bits as well as the number of bits at each ad- [58] Field of Search ..235/15o.53, 197, dress is less than that required to register all of the 235 18 1'39 152;.32g 14 -142; 3 0 47 sine function increments. Accordingly the function is AD coded into the memory ambiguously where in the steep or high slope region of the sine function, identi- [56] References Cited cal code is used to indicate large increments cor-' 1 responding to small increments in the relatively level UNITED STATES PATENTS region of the function. An interval detector deter- 2,886,243 5/1959 Sprague eta'l ..235 150.53 mines 8 of the functim which is being read 3,512,151 5/1970 Finkel et al ...23s/15o.53 x out of the mo y and corrects or weights the Code at 3,250,905 5/1966 Schroeder et at. ...235/l50.53X the corresponding locations thus correcting for the 3,345,505 10/1967 Schmid. ..235/l97 ambiguity.

3,509,556 4/1970 Schmidt; ...235/l50.53X 3,513,301 5/1970 ,Howe ..235/150.53 6 Claim, 3 Drawing Figures 7 X X x x x x x x Il s 1\,2 3 4 5 e 7 a L -1 Tn FIXED i ,1 1' 1 READ '-.'CLOCK lNCREMENT ONLY COUNTER MEMORY I v x o v INTERVAL y DETECTOR LOGIC 9 14 i I 1e i' I 2. Z lNP U-F 1 l i I ENCODER VARIABLE INCREMENT F F3\ COUNTER F4 F F5 F- F F BUFFER -21 --22 I OUTPUT DISPLAY PATENTED 01675 7 2 O 3 SHEET 1 [1F 2 JA TTORNEY 3 STATEMENT OF GOVERNMENT INTEREST The invention described herein may be manufactured and used by or for The Government of the United States of America for governmental purposes without the payment of any royalties thereon or therefor.

BACKGROUND OF THE INVENTION The present invention relates to electronic function generators, and more particularly to digital function generators for reproducing smooth or continuous functions.

The necessity for mathematical modeling of functions of an input signal for simulation or display occurs frequently in the computer art. Modeling of functions and in particular modeling of non-linear functions, such as trigonometric or exponential functions, does not conveniently lend itself to direct arithmetic solutions and function generators are frequently employed for this purpose; Such functiongenerators are typically constructed to receive the input signal and to directly convert the input signal to an output signal correspond-. ing to a given function. This conversion is made either by direct look-up, as in the case of digital or discrete function generators, or by non linear gain shaping in the case of analog or continuous function generators. The use of digital function generators with their as sociated speed, adaptability to a broad range of environments, compactness and reliability is particularly favored in field operations, such as for example coordinate transformations in aircraft fire control computers. When, however, a high degree of accuracy is desired function generators of the digital type, i.e., where the input signal determinesthe address of a stored output signal which is being looked up, often reach physical limits in the size of the'look-up memory containing the output signals. Typically the memory size is directly related to the desired accuracy and resolutions of the function which can be directly converted to the product of the number of addresses or cations at which the function is reproduced times the number of increments available at each address, or for example in terms of binary switches the number of switches necessary to form the address logic times the number of switches available at each address to define the increment there-at. To obviate the need of storing at each address the full increment corresponding to the function output signal at a particular input signal counting techniques have been commonly utilized wherein each address contains only a signal corresponding to the incremental difference of the function signal and the incremental differences are serially accumulated. In this form the range of possible slopes of the function signal determines the number of discrete increments required at each address. For functions which are continuous and at the same time comprise a large range of slopes the aforementioned counting technique, although providing an improvement over the previous direct reading technique, is still critical in terms of required elements in the memory necessary to accommodate the complete distribution of possible increments at each address. Consequently in the prior art extensive efforts have been directed at optimizing the size of the memory and the address and output logic thereof,

SUMMARY OF THE INVENTION Accordingly, it is the general purpose and object of the present invention to provide a logical apparatus which, for selected intervals of input signal, will assign different weights to increment signals at corresponding address locations in the memory, the weighting being determined by the slope of the function over that interval. Other objects of the invention are to provide an increase in accuracy for a given function generator with minimal additional components and power requirements.

Briefly these and other objects are accomplished within the present invention by providing an interval detector formed to receive the output signal of a fixed increment counter, which at a predetermined level of the fixed counter output signal switches weighting coefficients on corresponding increments stored in a memory. Accordingly the same signal combinations from the memory can be used to describe different slopes of the function, reducing the required word length contained at each address. The interval detector, therefore, forms a logical step in the use of short wordlength memory, allowing for conservation of memory hardware. More specifically, the fixed increment counter is driven by a clock, cyclically producing a serially increasing output signal of equal increments. The serially produced fixed increment output signal is connected to a read-only-memory unit which, at addresses corresponding to the fixed increment output signal, has preselected programmable signals stored therein corresponding to a modified function to be generated. The signals stored in the memory are read out to a logic unit which concurrently receives a weighting signal from the interval detector corresponding to preselected points on the fixed increment output signal. The logic unit selectively weights and corrects the memory output signal containing the modified function, producing an output signal corresponding to the increments of the corrected function. The logic output signal is accumulated in a variable increment counter and the accumulated signal is fed to a buffer. The buffer receives also an output signal from a comparator which compares the fixed increment output signal with the input signal and upon finding a match enables the buffer to read out.

BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 illustrates in block diagram form one embodiment of a digital function generator constructed according to the present invention;

FIG. 2 is a logic diagram of an interval detector and logic unit according to the present invention; and

FIG. 3 graphically illustrates a reproduction of a continuous function according to the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT For purposes of clarity the following description refers to a sine function generator receiving an angular or shaft position signal at the input thereof. It is to be understood that other continuous functions of an input signal, not necessarily trigonometric, are within the scope of the disclosure.

As shown in FIG. I, an angular signal 0 is received by an input encoder 14 which by means well known in the art converts the angular signal to a bit binary signal I at the output thereof. A fixed increment counter 18,

equal increments. The 10 bit binary signal from 1 counter 18 is carried on 10 parallel connections X, thru X,,,, inclusive, corresponding to the most significant to least significant bit arrangement in binary code commonly practiced in the art. Specifically, this arrangement corresponds toa- 10th power binary code allowing for 1,024 equal increments within each complete cycle ,of-counter 18 where a cycle constitutes a sequence of 10 bit words serially rippled through and incremented 'asfollows:

nections X, through X,,,, is connected to a read-onlymemory 19 of a type generally well known .in the art where the binary signal selects the location or address and the content thereof is read out as a signal AF(X). Accordingly, as counter 18 is sequentially, rippled through a count, values of AF (X are serially read out of memory 19. Each value of AF( X) represents in binary code a difference increment in a sine 0 function corresponding to the respective increments in 0. For a continuous function, such as a sine 0 function, the variations in adjacent AF(X) signals are never greater than one least significant bit, thus the variations of the AF(X) signal are stored on a single binary element at eachlocation or address and means described hereinbelow are provided to generate a secondary readout correcting the AF(X) signal over a particular region of the sine 0 function. To accommodate such a secondary readout an interval-detector 12 is included receiving at the input 'side thereof counter 18 output signal branched off the connections X through X,,,. Interval detector 12 at the output end thereof providesa correction coefficient signal D, the value thereof dependingon the signal carried on connections X, through X,

as described hereinbelow.

store or record the variations in AF (X where the interval detector 12 assigns a value of 2. for a A F(X) 0 when 0 is between 0 and 50 and a value of 0 for a 0 output between 50 and 90 and the memory is programmed accordingly.

Signal AF(X), varying by one least significant bit, is

connected to a logic unit which also is connected to receive signal D, from the interval detector 12 providing an output signal either'of 2 on connector G or 1 on connector G,. The signals on G and G, are then fed to a variable increment counter which accumulates the values as described herein below. The output of the variable increment counter 20 is received, on connectors F, through F by a buffer 21 and an output signal of buffer 21 is connected to an output display 22. Buffer 21, by conventional means, is enabled by a signal B from a comparator 13 which at the input side thereof receives both the output signal I of input encoder 14 and the fixed increment counter 18 signal on connectors X, through 10 Comparator 13 registers a match, by any means known in the art, when the fixed gions of AF (X variation. In the first region, approximately corresponding to 0 to 50 range in 0, AF(X) varies alternatively between two and one least significant bits for each increment in'O; for angles between 50 and 90 signal AF (X alternatively varies only between one and zero least significant bits. Accordingly, in this instance there are three distinct levels of a possible AF(X increment, i.e., 2, l, and 0 bits, however within any one region there are only two levels, either 2 and l or 1 and 0. Thus any conventional binary element, such as a v switch, at each address of the memory is adequate to increment counter 18 signal and the signal I are identical providing the signal B which permits buffer 21 to read out into output display 22.

As shown in more detail in FIG. 2, interval detector 12 comprises three AND gates 31, 321 and 33 each respectively connected to connectors X, andX X, and-X and X, and X,, where the signal on'each one of these is either 0 .or 1 as described above. The output of AND gates 31, 32 and 33 are fed to a NOR gate 34 which registers the signal D, when none of the AND gates are registering. NOR gate 34 will therefore register a 1 signal as long as the fixed increment counter 18 is below the binary code value of:

which corresponds approximately to all values of 0 below 50.6. Above that value either connectorx X or X', will register a l and the NOR gate 34 will not register a l on signal D,,. Gate 34 output signal D, is connected to the input of an AND ga'te.42 in logic 15,

where the gate 42 also receives the AF(X) signal inverted by an inverter43. Also connected to the input of ANDgate 42 is the clock 17 signal T, and gate 52 will therefore pass a clock pulse when both the inverse of AF(X) and the D, signal register a l. The output signal of gate 42 is connected to an OR gate 45 which'also receives a signal V, from counter 20 indicative of a completed count. OR gate 45, at the output side thereof, produces a signal G, which is connected to counter 20. Signal AF() and the timing signal T, are also connected to theinput of an AND gate 41 which passes a l on signal G, at the output side thereof. Signal G, is also connected to counter 20. Signals G, and G,, respectively, increment counter 20 by one or two bits by passing the pulses on the clock 17 signal T Any conventional means of incrementing a counter by one least significant bit is contemplated, such as, for example, connecting signal G, to the least significant bit flipflop of the counter. Incrementing by two bits in counter .20 can be also performed by any well known means, such as, for example, connecting signal G to the bit' flip-flop one level higher from the least significant bit.

Specifically, gate 41 is controlled by AF (X If AF (X l a signal T timing pulse passes through. Otherwise the pulse is not passed. Thus the variable increment counter 20 is incremented by one least significant bit when AF(X) 1. Gate 42 is controlled by the inverse or complement of AF (X and the signal D from interval detector 12. As previously described, interval detector 12 will register a l on signal D,, only for values less than 50.6 and alternatively a 0 when values greater than 50.7 are read in. Accordingly when the interval detector 12 registers a l and the AF(X) registers a 0 timing pulse passes through gate 42 incrementing the variable increment counter 20 by two least significant bits. Gate 41 and 42 never pass pulses at the same time specifically because gate 41 is a function of AF (X and gate 42 is a function of the inverse of AF(X The output of gate 42 is fed to OR gate 45 such that a two bit increment cannot pass through gate 45 when the count is complete.

The operation of the inventive digital function generator will be now described with reference to FIG. 3. Specifically, the ordinate of FIG. 3 is broken down into equal increments illustratively representing the 1,024 equal increments of 0 and the fixed increment counter 18 designated X,,, andthe abscissa corresponds to the output of the variable increment counter 20 designated as F As shown between counts 0 and 4 of the ordinate the best fit replica of the function generated by variable increment counter 20, shown as F,,, varies between two bit steps and one bit steps only. Over the region of X, 4 to 10 the increments vary between zero and one bit. Accordingly a sine function can be reduced to regions at which the increments vary between two and one bits and one and :zero bits, never varying by more than one bit in one region. In this manner a memory having only one binary element at each address or location can be utilized in combination with the interval detector correcting the absolute level of the alternating interval size.

Some of the many advantages of the present invention should now be readily apparent. The invention provides, with a minimal addition of hardware, means by which a memory of limited size can be utilized to model or generate complex functions. Furthermore, the invention provides means by which any function increment can be accommodated in a memory having only one binary switchat each address by the simple connection to the higher order binary flip-flops of a binary counter.

Obviously many modifications and variations of the ananalog input signal, comprising, in combination:

encoding means for converting the input signal into a digital output signal indicative of incremental amplitudes thereof;

address means for providing a timing signal and cyclically rippled binary signals in parallel bits;

memory means for providing a timing signal and cyclically rippled binary signals in parallel bits;

grammed therein predetermined first order func-- tions corresponding to discrete amplitudes within any group of amplitudes of said encoder means output signal for providing a first order output signal; 1

interval selecting means connected to receive said timing signal, a predetermined number of the binary signals from the end of each cycle, and said first order output signal, having programmed therein predetermined second order functions corresponding to discrete groups of amplitudes, for providing an output signal indicative of preselected amplitude group; and

indicator means connected to receive the output signals from said interval selecting means, said ad dress means, and said encoding means for providing an output signal indicative of predetermined combinations thereof.

2. A digital function generator for providing a predetermined function signal of a continuous input I signal comprising, in combination:

encoding means for converting the input signal into a digital output signal indicative of incremental amplitudes thereof;

fixed increment counter means for cyclically producing in equal increments an output signal of increasing amplitude;

memory means connected to receive fixed increment counter means output signal, having programmed therein predetermined first order function difference increments corresponding to discrete amplitudes within any group of amplitudes of said fixed increment counter means output signal for providing a first order output signal;

group detector means operatively connected to receive said fixed increment counter means output signal, having programmed therein predetermined second order function difference increments c0rresponding to discrete groups of amplitudes, for providing an output signal indicative of preselected amplitude group;

logic means connected to receive the output signals of said fixed increment counter means and said memory means for providing an output signal indicative of predetermined combinations thereof;

variable increment counter means connected to receive said logic means output signal for sequentially accumulating said output signal and providing an output signal indicative of the accumulated amplitude thereof;

comparator means connected to receive the encoder means signal and said fixed increment counter means signal for providing an output signal indicative of a match therebetween; and

readout means connected to receive said logic means and said variable increment counter means output signals for providing an output signal indicative of said variable counter means output signal concurrent with receiving a match signal from said comparator means.

3. A digital function generator according to claim 2,

further comprising:

further comprising:

said memory means including a plurality of storage means each having programmed therein respective ones of said first order functions, address means connected to receivesaid-fixed increment counter means signal for selecting corresponding ones of said storage means and providing said memory means output signal indicative of the stored contents thereof.

4. A digital function generator according toclaim 3, 10

said logic means including a plurality of gates each operatively connected to receive corresponding ones of said detector means output signals and 'said memory means signal for selectively producing function increment-signals of predetermined amplitude corresponding to preselected combinations thereof.

5. A digital memory device for storing thereon a function of an'input signal, comprising:

'6. A digital function generator for producing a predetermined digital function .signal on receiving a continuous input signal, comprising, in combination:

encoder means for converting the continuous input signal into a binary coded signal;

fixed increment counter means for cyclically producing between a minimum and maximum amplitude a binary coded output signal sequentially incremented' in equal least significant bits;

memory means connected to receive said fixed increment counter means output signal, having programmed therein binary coded first order function signal corresponding to discrete amplitude increments within any group of amplitudes of said en-' coder means output signal for providing a first order output signal; I group detector means operatively connected to receive said fixed increment counter means output signal, having programmed therein predetermined secondorder functions corresponding to discrete groups of amplitudes, for providing an output signal indicative of preselected amplitude groups;

logic means connected to receive the output signals from said fixed increment counter means and said memory means for providing a binary coded out put signal indicative of predetermined combinations thereof;

variable increment counter means connected to receive said logic means output signal for sequentially accumulating said output signal;

' comparator means connected toreceive said fixed increment counter means and said encoder means output signals for providing an output signal indicative of a match therebetween; and

readout means connected to receive said variable increment counter meansoutput signal and said comparator means output signal for providing readout signal upon receipt thereof; 

1. A digital function generator for generating a digital signal indicative of a predetermined function of an analog input signal, comprising, in combination: encoding means for converting the input signal into a digital output signal indicative of incremental amplitudes thereof; address means for providing a timing signal and cyclically rippled binary signals in parallel bits; memory means for providing a timing signal and cyclically rippled binary signals in parallel bits; memory means connected to receive the cyclically rippled binary signals in parallel bits, having programmed therein predetermined first order functions corresponding to discrete amplitudes within any group of amplitudes of said encoder means output signal for providing a first order output signal; interval selecting means connected to receive said timing signal, a pRedetermined number of the binary signals from the end of each cycle, and said first order output signal, having programmed therein predetermined second order functions corresponding to discrete groups of amplitudes, for providing an output signal indicative of preselected amplitude group; and indicator means connected to receive the output signals from said interval selecting means, said address means, and said encoding means for providing an output signal indicative of predetermined combinations thereof.
 2. A digital function generator for providing a predetermined function signal of a continuous input signal comprising, in combination: encoding means for converting the input signal into a digital output signal indicative of incremental amplitudes thereof; fixed increment counter means for cyclically producing in equal increments an output signal of increasing amplitude; memory means connected to receive fixed increment counter means output signal, having programmed therein predetermined first order function difference increments corresponding to discrete amplitudes within any group of amplitudes of said fixed increment counter means output signal for providing a first order output signal; group detector means operatively connected to receive said fixed increment counter means output signal, having programmed therein predetermined second order function difference increments corresponding to discrete groups of amplitudes, for providing an output signal indicative of preselected amplitude group; logic means connected to receive the output signals of said fixed increment counter means and said memory means for providing an output signal indicative of predetermined combinations thereof; variable increment counter means connected to receive said logic means output signal for sequentially accumulating said output signal and providing an output signal indicative of the accumulated amplitude thereof; comparator means connected to receive the encoder means signal and said fixed increment counter means signal for providing an output signal indicative of a match therebetween; and readout means connected to receive said logic means and said variable increment counter means output signals for providing an output signal indicative of said variable counter means output signal concurrent with receiving a match signal from said comparator means.
 3. A digital function generator according to claim 2, further comprising: said memory means including a plurality of storage means each having programmed therein respective ones of said first order functions, address means connected to receive said fixed increment counter means signal for selecting corresponding ones of said storage means and providing said memory means output signal indicative of the stored contents thereof.
 4. A digital function generator according to claim 3, further comprising: said logic means including a plurality of gates each operatively connected to receive corresponding ones of said detector means output signals and said memory means signal for selectively producing function increment signals of predetermined amplitude corresponding to preselected combinations thereof.
 5. A digital memory device for storing thereon a function of an input signal, comprising: first means for converting the input signal into binary coded output signals corresponding to preselected intervals thereof; second means operatively connected to receive the input signal for providing a set of incremental output signals indicative of the amplitudes of the input signal within the preselected intervals thereof; and third means operatively connected to receive said first and second means output signals for providing an incremental output signal indicative of the amplitude of the input signal.
 6. A digital function generator for producing a predetermined digital function signal on receiving a continuous input signal, comprising, in combination: encoder means fOr converting the continuous input signal into a binary coded signal; fixed increment counter means for cyclically producing between a minimum and maximum amplitude a binary coded output signal sequentially incremented in equal least significant bits; memory means connected to receive said fixed increment counter means output signal, having programmed therein binary coded first order function signal corresponding to discrete amplitude increments within any group of amplitudes of said encoder means output signal for providing a first order output signal; group detector means operatively connected to receive said fixed increment counter means output signal, having programmed therein predetermined second order functions corresponding to discrete groups of amplitudes, for providing an output signal indicative of preselected amplitude groups; logic means connected to receive the output signals from said fixed increment counter means and said memory means for providing a binary coded output signal indicative of predetermined combinations thereof; variable increment counter means connected to receive said logic means output signal for sequentially accumulating said output signal; comparator means connected to receive said fixed increment counter means and said encoder means output signals for providing an output signal indicative of a match therebetween; and readout means connected to receive said variable increment counter means output signal and said comparator means output signal for providing a readout signal upon receipt thereof. 